package com.zhuanzhuan.hero.user.facade;

import com.bj58.spat.scf.server.contract.annotation.ServiceContract;
import com.bj58.zhuanzhuan.zzentry.common.service.entity.ServiceHeaderEntity;
import com.bj58.zhuanzhuan.zzentry.common.service.entity.ZZOpenScfBaseResult;
import com.bj58.zhuanzhuan.zzentry.common.service.model.openEntry.ZZHeader;
import com.zhuanzhuan.hero.user.dto.visit.SaveVisitRecordDTO;
import com.zhuanzhuan.hero.user.vo.UserListItemVO;

import java.util.List;

/**
 * @ClassName IUserVisitRecordFacade
 * @Description
 * @Author hanjunjun
 * @Date 2024/6/19 16:49
 */
@ServiceContract
public interface IUserVisitRecordFacade {

    /**
     * 前端-访客-保存访问记录
     *
     * @param header
     * @param saveVisitRecordDTO
     * @return com.bj58.zhuanzhuan.zzentry.common.service.entity.ZZOpenScfBaseResult<java.lang.Void>
     * @author  hanjunjun
     * @date 2024/6/19
     **/
    ZZOpenScfBaseResult<Boolean> saveVisitRecord(@ZZHeader ServiceHeaderEntity header,
        SaveVisitRecordDTO saveVisitRecordDTO);

    /**
     * 前端-访客-查询访客记录
     *
     * @param header
     * @param homemakerUid  客态时该参数有值，赋值被访问者的uid
     * @return UserListItemVO
     * @author  hanjunjun
     * @date 2024/6/19
     **/
    ZZOpenScfBaseResult<List<UserListItemVO>> queryVisitRecordList(@ZZHeader ServiceHeaderEntity header, Long homemakerUid);

    /**
     * 前端-访客-清空访客记录
     *
     * @param header
     * @return com.bj58.zhuanzhuan.zzentry.common.service.entity.ZZOpenScfBaseResult<java.lang.Void>
     * @author  hanjunjun
     * @date 2024/6/19
     **/
    ZZOpenScfBaseResult<Boolean> clearVisitRecord(@ZZHeader ServiceHeaderEntity header);
}
